#include <QMessageBox>
#include <QtPlugin>

#include "xml.h"

QString XMLCodec::escape(const char &ch)
{
	if ( (ch == 13) || (ch == 10) ) return QString("<br/>");
	if ( ch < 32 ) return QString(".");
	if ( ch == '<' ) return QString("&lt;");
	if ( ch == '>' ) return QString("&gt;");
	if ( ch == '&' ) return QString("&amp;");
	if ( ch == '\"' ) return QString("&quot;");
	if ( ch == '\'' ) return QString("&apos;");

	return QString(ch);
}

XMLCodec::XMLCodec()
{
}

XMLCodec::~XMLCodec()
{
}

// decode data
QString XMLCodec::decode(const QByteArray& ba, const bool toServer)
{
	// change color
	//TODO
	/*
	if (toServer) str = "<font color=red>"  +escape(str)+"</font>";  // client->server  - red color
	else	  str = "<font color=green>"+escape(str)+"</font>";  // server->client  - green color
	str = "<p>" + str + "</p>";
	*/
	QString str;
	return str;
}

// encode data for send
QByteArray XMLCodec::encode(const QString& str, const bool toServer)
{
	//TODO
	QByteArray ba;
	return ba;
}

// returns codec short name for menu
QString XMLCodec::codecName()
{
	return QString("xml");
}

// return codec description
QString XMLCodec::codecDesc()
{
	return QString("dummy for xml codec");
}

TParams XMLCodec::params()
{
	TParams t;
	return t;
}

void XMLCodec::setParams(TParams&)
{
	// ignore
}

void XMLCodec::showParamsDialog()
{
	QString text = "xml";
	
	QMessageBox::about(0, "xml", text);
}

Q_EXPORT_PLUGIN2(xml, XMLCodec)

// kate: space-indent off; tab-indents on; indent-width 4; indent-mode cstyle;
